import { defineStore } from 'pinia'
import { ref, computed } from 'vue'

// 定义 Store
export const useUserStore = defineStore('user', () => {
  // 状态定义
  const token = ref('')
  const userInfo = ref({})

  // Actions
  const setToken = (newToken) => {
    token.value = newToken
  }

  const setUserInfo = (info) => {
    userInfo.value = info
  }

  const logout = () => {
    token.value = ''
    userInfo.value = {}
  }

  // 记得 return
  return {
    token,
    userInfo,
    setToken,
    setUserInfo,
    logout
  }
}, {
    // 网页端配置
    // persist: true,
    // 小程序配置（多端兼容配置）
    persist: {
      storage: {
        getItem(key) {
          // 添加JSON反序列化
          const value = uni.getStorageSync(key)
          return value ? JSON.parse(value) : null
        },
        setItem(key, value) {
          // 添加JSON序列化
          uni.setStorageSync(key, JSON.stringify(value))
        },
      },
    }
  }
)